package com.m1book.repositories.book;

import java.util.List;

import org.bson.types.ObjectId;
import org.springframework.data.mongodb.repository.MongoRepository;

import com.m1book.domain.book.ABook;
import com.m1book.domain.book.Book;
import com.m1book.domain.user.Miser;

public interface ABookRepository extends MongoRepository<ABook, ObjectId> {
	
	/**
	 * 查找donater登记捐赠的所有ABook。
	 * @param donaterId 捐赠者的ID
	 * @return abook列表
	 */
	public List<ABook> findByDonaterId(Miser donaterId);
	
	/**
	 * 查找Book属性为book的所有ABook。
	 * @param book 目标书籍
	 * @return abook列表
	 */
	public List<ABook> findByBook(Book book);
	
	/**
	 * 根据Book和当前持有者查找ABook。
	 * @param book 目标书籍
	 * @param holderId 持有者ID
	 * @return abook列表
	 */
	public List<ABook> findByBookAndHolderId(Book book, ObjectId holderId);
	
	/**
	 * 根据Book和当前持有者查找ABook。
	 * @param book 目标书籍
	 * @param donaterId 捐赠者ID
	 * @return abook列表
	 */
	public List<ABook> findByBookAndDonaterId(Book book, ObjectId donaterId);

}
